<?php
/**
 * Created by PhpStorm.
 * User: 技术员专用
 * Date: 2019/3/13
 * Time: 14:24
 */


//swoole_async_readfile会将文件内容全部复制到内存，所以不能用于大文件的读取
//如果要读取超大文件，请使用swoole_async_read函数
//swoole_async_readfile最大可读取4M的文件，受限于SW_AIO_MAX_FILESIZE宏
swoole_async_readfile(__DIR__.DIRECTORY_SEPARATOR.'1.txt',function ($filename,$content){
    echo 'filename:'.$filename.PHP_EOL;
    echo "content:".$content.PHP_EOL;
});
Swoole\Async::readFile(__DIR__.DIRECTORY_SEPARATOR.'1.txt',function ($filename,$content){
    echo 'filename:'.$filename.PHP_EOL;
    echo "content:".$content.PHP_EOL;
});
//分段读取，可以用于读取超大文件。每次只读$size个字节
//$content读取到的分段内容，如果内容为空，表明文件已读完
//可以通过return true/false，来控制是否继续读下一段内容。
swoole_async_read(__DIR__.DIRECTORY_SEPARATOR.'1.txt',function ($filename,$content){
    echo 'filename:'.$filename.PHP_EOL;
    echo "content:".$content.PHP_EOL;
    if ($content==''){
        return false;//没内容，不读取
    }else{
        return true;//有内容，继续读取
    }
},8192,0);